ceph纠删原理和配置手册 您所在的位置:网站首页 ceph ec算法 ceph纠删原理和配置手册

ceph纠删原理和配置手册

#ceph纠删原理和配置手册| 来源: 网络整理| 查看: 265

ceph纠删原理和配置手册 一、概念和原理 1.1 概念 按照误码控制的不同功能,可分为检错码、纠错码和纠删码等。 检错码仅具备识别错码功能 而无纠正错码功能; 纠错码不仅具备识别错码功能,同时具备纠正错码功能; 纠删码则不仅具备识别错码和纠正错码的功能,而且当错码超过纠正范围时可把无法纠错的信息删除。 1.2 原理 现如今大部分存储设备都是通过raid技术来实现数据保护的,但是raid的缺点也显而易见一般只允许坏一块磁盘,最多允许坏2块,当磁盘数量太多了之后,磁盘的故障率也随之提高,这个时候使用raid技术也满足不了数据安全存储保护的需求了。 纠删是一种数据保护方法,他将数据分割成片段,把冗余数据块扩展,编码,并将其存储在不同的位置,比如磁盘,存储节点或其他的地理位置。纠删原理:用个简单的公式来表示:n=k+m,其中n表示纠删过程中创建的数据或符号的总值,k表示原始数据或符号的值,m表示故障后添加的提供保护的冗余值。举例来说,一个原数据落到存储节点上之前被切分成4片(k值),通过纠删算法纠删成6片(n值),那么纠删值为2(m值),那么。这六片数据中任意四片都可以重建出原来的数据。 二、纠删配置手册 2.1 环境描述 节点IP 主机名 集群角色 OSD个数 192.168.0.31 lqy-1 MON&MDS&OSD 每个节点 一个50G磁盘做SSD 二个100G磁盘做SATA 192.168.0.32 lqy-2 192.168.0.36 lqy-3 2.2 配置步骤 1、初始化集群,查看集群状态,确认为ok状态后在进行下面的操作 2、查看当前的默认策略 # ceph osd erasure-code-profile ls # ceph osd erasure-code-profile get default 3、创建一个新的名为profile的规则,设置为主机分组 #ceph osd erasure-code-profile set profile k=2 m=1 runleset-failure-domain=host 4、创建一个名为ecpool-1的纠删码存储池,使用上面创建的profile规则 (由于k=2,m=1,总共6个SATA,所以PG设置为256) # ceph osd pool create ecpool-1 256 256 erasure profile 可以看到创建的存储池规则不是replicate而是erasure 5、创建纠删码的缓存池 # ceph osd pool create ssd 128 128 6、修改当前的crushmap # ceph osd getcrushmap -o raw_map # crushtool -d raw_map -o decode_map # vim decode_map 7、编码并设置crushmap # crushtool -c decode_map -o crush_map # ceph osd setcrushmap -i crush_map 查看此时的osd节点树 8、设置缓存池各个参数 将ssd设置成就删池ecpool-1的缓存池 # ceph osd tier add ecpool-1 ssd 设置缓存模式为writeback并让其生效 # ceph osd tier cache-mode ssd writeback # ceph osd tier set-overlay ecpool-1 ssd 设置命中算法 # ceph osd pool set ssd hit_set_type bloom # ceph osd pool set ssd hit_set_count 1 # ceph osd pool set ssd hit_set_period 3600 设置缓存池缓存的最大字节数(文件大小,一般设置为SSD的可用空间总和) # ceph osd pool set ssd target_max_bytes 70000000000 设置缓存脏页比例,达到此比例之后开始回写 (0.4表示这里设置40%,达到40%之后开始往冷池复制数据) # ceph osd pool set ssd cache_target_dirty_ratio 0.4 设置达到此比例后,开始移除对象 (0.8表示这里设置80%,达到80%之后开始删除数据) # ceph osd pool set ssd cache_target_full_ratio 0.8 设置最快刷到ecpool-1池的时间(秒),此处表示最少在热池保存600s之后,在开始往冷池刷 # ceph osd pool set ssd cache_min_flush_age 600 设置最快清除ssd池对象时间(秒),即达到1800s之后开始清除ssd里面的对象数据(已经刷到冷池的数据) # ceph osd pool set ssd cache_min_evict_age 900 设置ecpool-1池使用规则1 # ceph osd pool set ecpool-1 crush_ruleset 1 设置ssd池使用规则2 # ceph osd pool set ssd crush_ruleset 2 将ecpool-1加入mdsmap # ceph mds add_data_pool ecpool-1 9、挂载fuse客户端,创建缓存目录cache # fuse-mount -m 192.168.0.31,192.168.0.32,192.168.0.36 /media/ # mkdir /media/cache # setfattr -n ceph.dir.layout.pool -v ecpool-1 /media/cache/ 10、验证是否配置成功 往挂载点写入400M数据,查看是否先写到ssd池 # dd if=/dev/zero of=/media/cache/400M bs=1M count=400 。。。。。  

posted on 2016-12-14 14:39  歪歪121  阅读(498)  评论(0)  编辑  收藏  举报



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有